export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
  ID: string;
  String: string;
  Boolean: boolean;
  Int: number;
  Float: number;
  Any: any;
  Duration: string;
  Time: string;
};

export type CreateOrgInput = {
  code: Scalars['String'];
  name: Scalars['String'];
};

export type DictionaryOptionsInput = {
  key: Scalars['String'];
  value: Scalars['String'];
};

export type DictionaryOptionsPayload = {
  __typename?: 'DictionaryOptionsPayload';
  key: Scalars['String'];
  value: Scalars['String'];
};

export type DictionarySettingAttributePayload = {
  __typename?: 'DictionarySettingAttributePayload';
  options?: Maybe<Array<Maybe<DictionaryOptionsPayload>>>;
  value?: Maybe<Scalars['Any']>;
  valueType: DictionaryType;
};

export type DictionarySettingInput = {
  displayName: Scalars['String'];
  groupName: Scalars['String'];
  key: Scalars['String'];
  options?: InputMaybe<Array<DictionaryOptionsInput>>;
  unit?: InputMaybe<Scalars['String']>;
  value?: InputMaybe<Scalars['Any']>;
  valueType: DictionaryType;
};

export type DictionarySettingPayload = {
  __typename?: 'DictionarySettingPayload';
  attribute: DictionarySettingAttributePayload;
  displayName: Scalars['String'];
  groupName: Scalars['String'];
  id: Scalars['ID'];
  key: Scalars['String'];
  orgId: Scalars['String'];
  unit?: Maybe<Scalars['String']>;
};

export enum DictionaryType {
  Boolean = 'BOOLEAN',
  Multiple = 'MULTIPLE',
  Options = 'OPTIONS',
  Single = 'SINGLE'
}

export type Mutation = {
  __typename?: 'Mutation';
  registerOrg: OrgBasicCredentialPayload;
  updateSettings: Array<DictionarySettingPayload>;
};


export type MutationRegisterOrgArgs = {
  input: CreateOrgInput;
};


export type MutationUpdateSettingsArgs = {
  input: Array<DictionarySettingInput>;
};

export type OrgBasicCredentialPayload = {
  __typename?: 'OrgBasicCredentialPayload';
  appKey: Scalars['String'];
  appSecret: Scalars['String'];
  id: Scalars['ID'];
  org: OrgPayload;
  orgId: Scalars['String'];
};

export type OrgPayload = {
  __typename?: 'OrgPayload';
  code: Scalars['String'];
  id: Scalars['ID'];
  name: Scalars['String'];
};

export type Query = {
  __typename?: 'Query';
  dictionarySetting: Array<DictionarySettingPayload>;
  dictionarySettings: Array<DictionarySettingPayload>;
};


export type QueryDictionarySettingArgs = {
  keys: Array<Scalars['String']>;
};

export type SettingQuery = {
  appKey: Scalars['String'];
  appSecret: Scalars['String'];
};

export type UpdateSettingInput = {
  appKey: Scalars['String'];
  appSecret: Scalars['String'];
  dictionarySettings: Array<DictionarySettingInput>;
};
